/*
 * Copyright (C) 2022 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import DeviceModel from './DeviceModel';
import DistanceConfigFetcher from './DistanceConfigFetcher';
import deviceInfo from '@ohos.deviceInfo';

class ModelSpecificDistanceUpdater {
  private static readonly TAG: string = "ModelSpecificDistanceUpdater"
  private error: Error = null
  private urlString: string = null
  private response: string = null
  private mDistanceConfigFetcher: DistanceConfigFetcher

  public constructor(urlString: string) {
    this.mDistanceConfigFetcher = new DistanceConfigFetcher(urlString, this.getUserAgentString());
  }

  private getUserAgentString(): string {
    return "Beacon Library;" + this.getVersion() + ";" + this.getPackageName() + ";" + this.getInstallId() + ";" + this.getModel();
  }

  private getPackageName(): string {
    return "distance";
  }

  private getModel(): string {
    return DeviceModel.forThisDevice().toString();
  }

  private getInstallId(): string {
    return deviceInfo.sdkApiVersion.toString()
  }

  private getVersion(): string {
    return deviceInfo.osFullName;
  }
}

export default ModelSpecificDistanceUpdater